package br.com.unisinos.unitunes.model.entidade;

import java.awt.image.BufferedImage;
import java.sql.Date;
import java.util.Objects;

public class Album {

    private int idAlbum;
    private String nomeAlbum;
    private BufferedImage capa;
    private Date dataCriacao;
    private Pessoa pessoa;

    public Album() {
    }

    public Album(int idAlbum, String nomeAlbum, BufferedImage capa, Date dataCriacao, Pessoa pessoa) {
        this.idAlbum = idAlbum;
        this.nomeAlbum = nomeAlbum;
        this.capa = capa;
        this.dataCriacao = dataCriacao;
        this.pessoa = pessoa;
    }

    public Album(String nomeAlbum, BufferedImage capa, Date dataCriacao) {
        this.nomeAlbum = nomeAlbum;
        this.capa = capa;
        this.dataCriacao = dataCriacao;
    }

    public int getIdAlbum() {
        return idAlbum;
    }

    public String getNomeAlbum() {
        return nomeAlbum;
    }

    public BufferedImage getCapa() {
        return capa;
    }

    public Date getDataCriacao() {
        return dataCriacao;
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setIdAlbum(int idAlbum) {
        this.idAlbum = idAlbum;
    }

    public void setNomeAlbum(String nomeAlbum) {
        this.nomeAlbum = nomeAlbum;
    }

    public void setCapa(BufferedImage capa) {
        this.capa = capa;
    }

    public void setDataCriacao(Date dataCriacao) {
        this.dataCriacao = dataCriacao;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public int hashCode() {
        int hash = 7;
        hash = 41 * hash + this.idAlbum;
        hash = 41 * hash + Objects.hashCode(this.nomeAlbum);
        hash = 41 * hash + Objects.hashCode(this.capa);
        return hash;
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Album other = (Album) obj;
        if (this.idAlbum != other.idAlbum) {
            return false;
        }
        if (!Objects.equals(this.nomeAlbum, other.nomeAlbum)) {
            return false;
        }
        if (!Objects.equals(this.capa, other.capa)) {
            return false;
        }
        if (!Objects.equals(this.dataCriacao, other.dataCriacao)) {
            return false;
        }
        return true;
    }

    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Album [ idAlbum = ")
               .append(idAlbum)
               .append(", nomeAlbum=")
               .append(nomeAlbum)
               .append(", capa=")
               .append(capa)
               .append(", dataCriacao=")
               .append(dataCriacao)
               .append(", pessoa=")
               .append(pessoa)
               .append(" ]");
        return builder.toString();
    }

}